home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 1 / Gekikoh Dennoh Club Vol. 1 (Japan).7z / Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin / kowin / archive / apl / bmp100.lzh / gg.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-09-02  |  2.1 KB  |  115 lines

  1. /*    GViewLib text 1995 H.Ogasawara(COR.)    */
  2.  
  3.  
  4. #include    <corlib.h>
  5. #include    <gviewlib.h>
  6. #include    <microfio.h>
  7.  
  8. static int    GlobalCount= 0,
  9.         XP= 80, YP= 0;
  10.  
  11. static GVIEW *
  12. Load( file )
  13. char    *file;
  14. {
  15.     GVIEW    *gp;
  16.     static    Exec();
  17.     if( gp= (GVIEW*)bmp_start( file ) ){
  18.         gp->EventExec= Exec;
  19.         GViewOpen( XP, YP, gp, file, Close|Push );
  20.         GlobalCount++;
  21.         return    gp;
  22.     }
  23.     return    0;
  24. }
  25.  
  26. static
  27. Exec( wp, info, gp )
  28. WindowID    wp;
  29. EventInfo    *info;
  30. GVIEW        *gp;
  31. {
  32.     switch( info->option ){
  33.     case EventClose:
  34.         MFREE( gp );
  35.         if( !--GlobalCount )
  36.             WindowConnectionClose();
  37.         return    TRUE;
  38.     case EventMouseSwitch:
  39.         if( info->RightON ){
  40.             extern Slow, Info;
  41.             static char    *menu[]= {
  42.                 "○展開速度優先",
  43.                 "○画質優先",
  44.                 "--------------",
  45.                 "○SIZE表示あり",
  46.                 "○SIZE表示なし",
  47.             };
  48.             menu[0][1]= 0x9c-Slow;
  49.             menu[1][1]= 0x9b+Slow;
  50.             menu[3][1]= 0x9b+Info;
  51.             menu[4][1]= 0x9c-Info;
  52.             WindowGetEventInfo( info );
  53.             switch( PopUpMenu(info->x-1,info->y+1, menu, 5,12 ) ){
  54.             case 0:    Slow= 0; break;
  55.             case 1: Slow= 1; break;
  56.             case 3:    Info= 1; break;
  57.             case 4: Info= 0; break;
  58.             }
  59.             return    TRUE;
  60.         }
  61.         break;
  62.     case EventUser:
  63.         switch( info->ComData ){
  64.         case UserStrings: {
  65.             unsigned char    **pp= info->ComBuffer;
  66.             for(; *pp ; Load( *pp++ ) );
  67.             info->ComData= -1;
  68.             }
  69.             break;
  70.         case UserString:
  71.             Load( info->ComBuffer );
  72.             info->ComData= -1;
  73.             break;
  74.         }
  75.         return    TRUE;
  76.     }
  77.     return    FALSE;
  78. }
  79.  
  80. WindowMain( argc, argv )
  81. char    **argv;
  82. {
  83.     char    *file= NULL;
  84.     extern Slow, Info;
  85.     argc= AnalyzeArgs( argc, argv, &XP, &YP, 0, 0 );
  86.     for(; --argc ;){
  87.         if( **++argv == '-' ){
  88.             switch( (*argv)[1] ){
  89.             case 's':
  90.                 Slow= (*argv)[2]&1;
  91.                 break;
  92.             case 'i':
  93.                 Info= (*argv)[2]&1;
  94.                 break;
  95.             }
  96.         }else
  97.             file= *argv;
  98.     }
  99.     if( file && Load( file ) )
  100.         return;
  101.     Err2( "BMP loader v1.00 1995 H.Ogasawara(COR.)\r\n",
  102.         "usage: bmp [-xN] [-yN] [-sN] [-iN] file.bmp" );
  103.     WindowSendSignal( WindowProcessID, SignalKill, NULL );
  104. }
  105.  
  106. Err2( m1, m2 )
  107. char    *m1, *m2;
  108. {
  109.     ConsoleOpen();
  110.     ConsolePrint( "bmp:" );
  111.     ConsolePrint( m1 );
  112.     ConsolePrint( m2 );
  113.     ConsolePrint( "\r\n" );
  114. }
  115.